const express = require('express');
const axios = require('axios');
const cheerio = require('cheerio');
const cors = require('cors');

const app = express();
app.use(cors());

app.get('/api/get-articles', async (req, res) => {
    try {
        let currentPage = 1; // 当前页数
        let articles = []; // 存储文章信息的数组

        while (true) {
            const websiteURL = `http://shumo.neepu.edu.cn/index.php/Home/Zxdt/index/p/${currentPage}.html`;
            const { data } = await axios.get(websiteURL);
            const $ = cheerio.load(data);

            // 在表格中找到每一行，对于每一行：
            $('table tr').each((index, element) => {
                if (index !== 0) {
                    // 找到该行的第一列中的 `<a>` 标签，获取其标题和链接
                    const title = $(element).find('td:nth-child(1) a').text().trim();
                    const link = $(element).find('td:nth-child(1) a').attr('href');
                    // 将文章的标题和链接添加到 articles 数组中
                    articles.push({ title, link });
                }
            });

            // 判断是否到达最后一页
            const nextPageLink = $('ul.pagination li a.next').attr('href');
            if (!nextPageLink) {
                break;
            }

            currentPage++;
        }

        // 将文章信息作为 JSON 数据返回
        res.json({ articles });
    } catch (error) {
        console.error(error);
        res.status(500).send('Server error');
    }
});

app.listen(5001, () => console.log('Server is running on port 5001'));